0. Introduce

전체 강의 구성

  • Neural Networks and Deep Learning
    NN이란 무엇인가? 왜 NN을 해야 하는가? 등과 같은 Neural Networks 에 대한 선행 제공
  • Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization
    NN을 하기 위해 Tensorflow 등 사용 법과, Hyperparemeter 설정 법 등 라이브러리를 사용하고, 라이브러리에서 제공하는 값을 이해하기 위한 내용
  • Structuring Machine Learning Projects
    실제 프로젝트를 위해, 머신러닝의 시스템을 이해하고, 퍼포먼스를 비교하는 법 등을 설명
  • Convolutional Neural Networks
    CNN
  • Sequence Models
    RNN + LSTM

계획

  • 1월 중

    • 첫 강의(Neural Networks and Deep Learning)를 먼저 들을 예정
    • 첫 강의는 빠르게 마치고(2주) 기본 지식 함양을 위해 두번째 강의빠르게 마칠 예정(1~1.5주)를 먼저 들을 예정
    • (Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization)
    • 세번째 강의(Structuring Machine Learning Projects)는 NN이론과 큰 연관성이 없으므로, 1월 중 시간이 남게 되면 진행하며, 아닐 경우 진행하지 않음
  • 2월 중

    • CNN부터는 앞의 강의와 달리 이론적으로 공부 할 내용이 많아질 것으로 추정
    • 네번째 강의 (Convolutional Neural Networks)는 CNN이며, 일주일 4시간 학습 기준 4주 분량으로 이루워져 있음. 따라서 2주일 정도 할애하여 학습 예정
    • 다섯번째 강의 (Sequence Models)는 아직 오픈되지 않았지만, CNN과 유사할 것으로 추정 하며, 따라서 마찬가지로 2주일 정도 할애하여 학습 예정
  • 12기 참여 이후

    • 우리의 미래는...?

1. What is neural network?

  • 직역하면 신경망!
  • 즉 뇌의 작용에 영감을 받아 만든 강력한 학습 알고리즘입니다!

1. Single neural network

아래 그림에서 Size of house에 따른 Price를 예측하기 위한 방법은 무엇일까요? img - 입력값은 size of house(x) - 출력값은 price(y)

그림의 빨간 X들은 파란 선으로 그려진 함수를 통해 어느정도 예측 가능할 것 입니다. 이 파란 선과 같은 함수를 ReLU function 이라 부릅니다.

여기서 ReLU function이란, 특정 임계치가 오기 전 까지는 '0'의 값을 가지다가, 임계치 이후 부터 일정한 기울기로 증가하는 함수입니다. 이는 신경의 역치와 유사한 특징을 가집니다.

따라서, 우리는 이와 같은 형태를 하나의 뉴런으로 이뤄진 신경망 이라고 생각 할 수 있습니다. 즉, ReLU funtion 을 하나의 단뉴런 네트워크로 만들어 집값을 예측하게 됩니다.

2. Multiple neural network

현실 세계에서는 집의 크기뿐만 아니라 침실의 개수, 우편번호, 재산 까지도 가격에 영향을 미칠수 있을 것입니다.

이를 해석하자면, 크기와 침실의 개수는 가족 규모에, 우편번호와 재산은 학교의 수준에, 우편번호는 도보생활반경에 영향을 끼치고, 이 3가지는 결국 집의 가격에 영향을 끼칠 것입니다.

img

따라서 우리는 위와 같은 그림을 통해 Multiple Neural Network를 설계할 수 있습니다. 하지만, 실제 설계에서 Neural Network의 중간 레이어(앞으로는 Hidden Layer라 부름)은 의미를 가지지 않습니다.

img - Input Layer과 Output Layer를 제외한 Layer들을 Hidden Layer라고 합니다.
- Neural Network에 input(x)와 output(y)를 주어서 Hidden Unit들을 만들고 학습시킵니다.

각 Hidden Layer들은 모든 Input Layer의 입력값을 전달 받으며, 전달 받은 Input Layer에 따른 결과값을 내보내는 뉴런 입니다.

What is Deep Learning?

  • Deep은 Hidden Layer의 수가 많은 것을 뜻합니다.
  • 따라서 Deep Learning은 매우 많은 Layer을 가지는 Neural Network를 학습시키는 것을 뜻합니다.

2. Supervised learning for Neural Network

Supervised learning?

Supervised learning(지도학습) 이란, 우리가 이미 정답을 알고 있는 항목에 대해, 연관성 있을것으로 추정되는 데이터들을 가지고 학습하는 것 입니다.

지도학습 에서 우리는 Input set을 가지고 있으며, 해당 Input에 대한 정답인 Output set을 가지고 있어야 합니다. 즉, Paired Data를 가지고 있어야 합니다.

Supervised learning problems

지도학습으로 풀 수 있는 문제들은, "regression" 또는 "classification" 문제들입니다.

Regression 문제에서 우리는 연속된 출력에 대해 올바른 정답을 추정하게 됩니다. 즉, 입력된 변수들을 특정 연속함수(continuous function)에 매핑하려는 노력을 하게 됩니다.

Classification 문제에서 우리는 직접적으로 정확한 추정치를 만드는 대신에, 이산적인 출력에서의 정답을 알아보고자 합니다. 다시 말해, 결과가 어느 분류에 속하게 되는지를 매핑하게 됩니다.

img

이를 위해 우리는 다양한 종류의 Neural Network를 사용합니다. 예를 들어, CNN(Convolution Neural Network)는 이미지 프로세싱등을 위해 사용됩니다. RNN(Recurrent Neural Network)는 1차원 시퀀스 데이터를 위해 자주 사용됩니다. 예를 들어 영어를 번역하는 것 등이 있습니다. 자율주행 등을 위해서는 Hybrid Neural Network 구조를 사용하게 됩니다.

img

Structured vs Unstructured data

Structured data는 기본적으로 구조화된 데이터 즉, 데이터베이스화 된 데이터 등을 의미 합니다. 예를 들어, 집의 가격을 추정할 때, 집의 가격 또는 집에 있는 침실의 갯수 등을 가지고 있는 컬럼이 있을 수 있습니다. 또는 사용자가 광고를 클릭할지 예측하는 데이터셋 에서, 유저의 나이 또는 광고의 ID등의 정보가 있을 수 있습니다. 이와 같이, Structured data는 매우 잘 정의된 의미를 가지고 있습니다.
Unstructured data는 오디오 또는 이미지와 같이, 정리되지 않은 데이터를 의미합니다. 이는 오디오 데이터의 각 정보 또는 이미지 데이터의 픽셀값 등 입니다.

img

역사적으로 컴퓨터는 구조화되지 않은 데이터를 구조화된 데이터에 비해 훨신 어렵게 이해합니다. 하지만 인류는 오디오 큐와 이미지등을 더 잘 이해하도록 진화했습니다. 그리고, 사람은 구조화 되지 않은 데이터를 해석하는데 매우 능숙합니다. 즉, 신경망의 부상에 따른 가장 흥미로운 사실 중 하나는 신경망 덕분에 컴퓨터가 매우 유리해졌다는 사실 입니다. 따라서 음성/이미지 인식, 자연어 처리 등을 사용할 수 있는 방법이 훨신 늘어났습니다.

그럼에도 불구하고, 뉴런네트워크가 만들어내는 단기간의 경제적 가치는 '우수한 광고 시스템', '더 나은 수익모델' 등 거대 데이터베이스 처리 능력(구조화 된 데이터)에 기반하고 있다는 사실을 잊어서는 안됩니다.

따라서, 앞으로 진행될 많은 내용이(이 과정 내에서도, 그리고 현실에서도) 두 부분 모두에 걸쳐서 진행될 것 입니다.

3. Why is deep learning taking off?

Deep Learning이 최근에 급부상한 이유?

  1. 디지털화로 매우 방대한 양의 데이터가 축적
    시대 발전에 따라 현재는 대부분의 데이터가 서버 등 네트워크(클라우드)에 저장되고 있습니다. 따라서 현재 많은 서비스 들은 서비스를 이용한 다양한 데이터이 모두 축척되어 있습니다.
  2. 컴퓨팅 파워가 향상
    컴퓨팅 파워 향상에 따라 기존에는 SVM등 방식에 비해 너무 오랜 시간이 걸리던 뉴런 네트워크를 빠른 시간내에 처리할수 있게 되었습니다. 또한 멀티 프로세싱 기술 발전에 따라 동시에 병렬적으로 많은 연산을 하는 뉴런 네트워크에 유리해졌습니다.
  3. Neural Network Algorithm의 혁신
    기존에는 Sigmoid 를 사용하면서 1개 이상의 Hidden Layer를 넣기 힘들었습니다. back 하지만, ReLU를 사용하면서, 여러 Hidden Layer를 넣었을 때에도 동작을 보장할 수 있게 되었습니다. 따라서 Deep-Learning을 할 수 있는 배경이 만들어졌습니다. sig2relu

그럼, 왜 NN을 사용해야 할까요?
기존의 전통적인 알고리즘(SVM, Logistic Regression 등)은 데이터의 양이 일정수준 이상이면 효과가 별로 향상되지 않습니다. Neural Network의 크기가 클수록 성능은 더욱 좋아지지만 더욱 많은 데이터가 필요하고, 학습시간은 더욱 길어집니다.

img

  • 여기서 말하는 데이터는 Labled Data, 즉 입력과 출력값이 쌍으로 이루어진 Data를 뜻합니다. (앞의 지도학습 참고)
  • Training data set이 적으면 세부 parameter조정이 중요합니다.

img - 알고리즘의 혁신은 예를 들면, Sigmoid 함수에서 ReLU함수로의 변화 등이 있습니다. - 오른쪽 그림은 일반적으로 Deep Learning이 어떻게 진보되어 왔는지 보여줍니다. - Neural Network를 어떻게 구성할 것인지(Idea), 그리고 그것을 어떻게 구현할 것인지(Code), 이러한 경험을 통한 피드백(Experiment)를 나타냅니다.

4. 마치며

이번 주 우리는 신경망이란 무엇인가 부터, 기계 학습 중 지도학습에서 다루는 다양한 데이터의 종류와 이에 따른 알고리즘 그리고 왜 신경망을 써야 하는지 그리고 어떻게 쓸 수 있게 되었는지에 대하여 공부했습니다.

이번주는 스터디의 첫 시작인만큼 아직 핵심에 다가가진 않았지만, 다음 주 세션에서 더욱 발전된 모습으로 저흰 돌아옵니다. (제발)